package com.ruoyi.driver.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 司机管理对象 tb_driver
 * 
 * @author ruoyi
 * @date 2025-08-18
 */
public class TbDriver extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 司机ID */
    private Integer driverId;

    /** 司机姓名 */
    @Excel(name = "司机姓名")
    private String driverName;

    /** 司机性别 */
    @Excel(name = "司机性别")
    private Integer driverSex;

    /** 司机手机号码 */
    @Excel(name = "司机手机号码")
    private String driverPhone;

    /** 注册时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date registrationTime;

    /** 城市ID */
    @Excel(name = "城市ID")
    private Integer cityId;

    /** 绑定车辆 */
    @Excel(name = "绑定车辆")
    private Integer bindVehicle;

    /** 车辆级别 */
    @Excel(name = "车辆级别")
    private Integer vehicleLevel;

    /** 司机状态 */
    @Excel(name = "司机状态")
    private Integer driverStatus;

    /** 工作状态 */
    @Excel(name = "工作状态")
    private Integer workStatus;

    /** 司机主管 */
    @Excel(name = "司机主管")
    private Integer userId;

    /** 身份证号码 */
    @Excel(name = "身份证号码")
    private String card;

    private String model;

    private String userName;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getLevelName() {
        return levelName;
    }

    public void setLevelName(String levelName) {
        this.levelName = levelName;
    }

    private String levelName;

    /** 合同(或协议)有效期起 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同(或协议)有效期起", width = 30, dateFormat = "yyyy-MM-dd")
    private Date contractStartDate;

    /** 合同(或协议)有效期止 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同(或协议)有效期止", width = 30, dateFormat = "yyyy-MM-dd")
    private Date contractEndDate;

    public void setDriverId(Integer driverId)
    {
        this.driverId = driverId;
    }

    public Integer getDriverId()
    {
        return driverId;
    }

    public void setDriverName(String driverName)
    {
        this.driverName = driverName;
    }

    public String getDriverName()
    {
        return driverName;
    }

    public void setDriverSex(Integer driverSex)
    {
        this.driverSex = driverSex;
    }

    public Integer getDriverSex()
    {
        return driverSex;
    }

    public void setDriverPhone(String driverPhone)
    {
        this.driverPhone = driverPhone;
    }

    public String getDriverPhone()
    {
        return driverPhone;
    }

    public void setRegistrationTime(Date registrationTime)
    {
        this.registrationTime = registrationTime;
    }

    public Date getRegistrationTime()
    {
        return registrationTime;
    }

    public void setCityId(Integer cityId)
    {
        this.cityId = cityId;
    }

    public Integer getCityId()
    {
        return cityId;
    }

    public void setBindVehicle(Integer bindVehicle)
    {
        this.bindVehicle = bindVehicle;
    }

    public Integer getBindVehicle()
    {
        return bindVehicle;
    }

    public void setVehicleLevel(Integer vehicleLevel)
    {
        this.vehicleLevel = vehicleLevel;
    }

    public Integer getVehicleLevel()
    {
        return vehicleLevel;
    }

    public void setDriverStatus(Integer driverStatus)
    {
        this.driverStatus = driverStatus;
    }

    public Integer getDriverStatus()
    {
        return driverStatus;
    }

    public void setWorkStatus(Integer workStatus)
    {
        this.workStatus = workStatus;
    }

    public Integer getWorkStatus()
    {
        return workStatus;
    }

    public void setUserId(Integer userId)
    {
        this.userId = userId;
    }

    public Integer getUserId()
    {
        return userId;
    }

    public void setCard(String card)
    {
        this.card = card;
    }

    public String getCard()
    {
        return card;
    }

    public void setContractStartDate(Date contractStartDate)
    {
        this.contractStartDate = contractStartDate;
    }

    public Date getContractStartDate()
    {
        return contractStartDate;
    }

    public void setContractEndDate(Date contractEndDate)
    {
        this.contractEndDate = contractEndDate;
    }

    public Date getContractEndDate()
    {
        return contractEndDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("driverId", getDriverId())
            .append("driverName", getDriverName())
            .append("driverSex", getDriverSex())
            .append("driverPhone", getDriverPhone())
            .append("registrationTime", getRegistrationTime())
            .append("cityId", getCityId())
            .append("bindVehicle", getBindVehicle())
            .append("vehicleLevel", getVehicleLevel())
            .append("driverStatus", getDriverStatus())
            .append("workStatus", getWorkStatus())
            .append("userId", getUserId())
            .append("card", getCard())
            .append("contractStartDate", getContractStartDate())
            .append("contractEndDate", getContractEndDate())
            .append("model", getModel())
            .append("levelName", getLevelName())
            .append("userName", getUserName())
            .toString();
    }
}
